package ar.com.contable.ganancias.listener;

import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.widgets.TreeItem;

import ar.com.contable.ganancias.model.YearFolderModel;
import ar.com.contable.ganancias.modelVO.CategoryVO;
import ar.com.contable.ganancias.modelVO.ItemVO;
//import ar.com.contable.ganancias.modelVO.PersonFolderVO;
import ar.com.contable.ganancias.modelVO.RowVO;
import ar.com.contable.ganancias.modelVO.YearModelVO;
import ar.com.contable.ganancias.util.LabelsBag;

public class ItemCellModifier implements ICellModifier {
	private Viewer viewer;
	private YearFolderModel model;

	/**
	 * Constructor.
	 * @param viewer
	 * @param model
	 */
	public ItemCellModifier(Viewer viewer, YearFolderModel model) {
		this.viewer = viewer;
		this.model = model;
	}

	public boolean canModify(Object element, String property) {
		((YearModelVO)viewer.getInput()).refresh();
		return ((RowVO) element).canModify(property);
	}

	public Object getValue(Object element, String property) {
		
		((YearModelVO)viewer.getInput()).refresh();
		return ((RowVO) element).getValue(property);
		
//		System.out.println("ItemCellModifier.getValue(Object, String): "
//				+ element + " " + property);
//		String result = "";
//
//		if (element instanceof PersonFolderVO) {
//			PersonFolderVO p = (PersonFolderVO) element;
//			if (property.equals("detalle")) {
//				result = LabelsBag.getLabelText(p.toString());
//			} else {
//				return result;
//			}
//		} else {
//			if (element instanceof CategoryVO) {
//				CategoryVO catTemp = (CategoryVO) element;
//				if (property.equals("detalle")) {
//					result = catTemp.getName();
//				} else {
//					return result;
//				}
//			} else {
//				if (element instanceof ItemVO) {
//					ItemVO p = (ItemVO) element;
//					if (property.equals("detalle")) {
//						return p.getName();
//					} else {
//						result = p.getValue(property).toString();
//					}
//					return result;
//				}
//
//			}
//		}
//		return result;
	}

	public void modify(Object element, String property, Object value) {
		
		Object data = ((TreeItem) element).getData();
		
		 ((RowVO) data).modify(property, value);
//		System.out.println("ItemCellModifier.modify(Object, String, Object): "
//				+ element + " " + property + " " + value);
//		if (element instanceof TreeItem) {
//
//			Object data = ((TreeItem) element).getData();
//
//			if (data instanceof CategoryVO) {
//				CategoryVO c = (CategoryVO) data;
//	
//				if (property.equals("detalle")) {
//					c.setName((String) value);
//				} 
//			}
//			
//			if (data instanceof ItemVO) {
//				ItemVO p = (ItemVO) data;
//	
//				if (property.equals("detalle")) {
//					p.setName((String) value);
//				} else {
//					System.out.println("value: " + value);
//					value = (value == null || value == "") ? "0.0" : value;
//	
//					float valueTemp = Float.parseFloat(value.toString());
//					
//					System.out.println("VALUEteMP: " + valueTemp);
//					try {
//						p.setValue(property, valueTemp);
//					} catch (Exception e) {
//						System.out
//								.println("ItemCellModifier.modify(Object, String, Object): "
//										+ e);
//					}
//				}
//			}
//		}

		((YearModelVO)viewer.getInput()).refresh();
		viewer.refresh();
	}
}
